 // 1、数组交换位置
export function swap (arr:number[],i:number,j:number){
    let temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
    // [arr[i], arr[j]] =  [arr[j], arr[i]];
}

// 2、验证一个数组是否是从小到大排序的
export function isSort(arr:number[]):boolean{
    for(let i = 0; i < arr.length - 1; i++){
        if(arr[i] > arr[i + 1]) return false;
    }
    return true;
}
// 3、随机生成测试数据，对自己封装的排序算法进行检测
// ts的类型一个函数类型，函数的形参是一个数组型的数组，返回一个数字型的数组
type SortAlgoFn = (arr:number[]) => number[]
export function testSort(sortFn:SortAlgoFn){
    // 随机生成一个长度为10 的数组(数组中存放多个数字)
    const nums = Array.from({length:10},()=>{
        // floor(向下取整)
        return Math.floor(Math.random() * 200)
    })
    //使用排序对数组进行排序
    console.log('排序前的原数组',nums)
    const newNums = sortFn(nums)
    console.log('排序后的新数组',newNums)
    const result = isSort(newNums)
    console.log('排序后是否有正确的结果',result)

}

